#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include "disasm.h"
#include "la_print.h"

static const char *ir2_ins_name[] =  {
    "INVALID",
    "ill",
    "label",
    "x86.inst",
    "dup",
    "mov64",
    "mov32.sx",
    "mov32.zx",
    "clr.h32",
    "add",
    "sub",
    "addi.addrx",
    "load.addrx",
    "store.addrx",
    "gr2scr",
    "scr2gr",
    "clo.w",
    "clz.w",
    "cto.w",
    "ctz.w",
    "clo.d",
    "clz.d",
    "cto.d",
    "ctz.d",
    "revb.2h",
    "revb.4h",
    "revb.2w",
    "revb.d",
    "revh.2w",
    "revh.d",
    "bitrev.4b",
    "bitrev.8b",
    "bitrev.w",
    "bitrev.d",
    "ext.w_h",
    "ext.w_b",
    "rdtimel.w",
    "rdtimeh.w",
    "rdtime.d",
    "cpucfg",
    "x86mttop",
    "x86mftop",
    "x86loope",
    "x86loopne",
    "x86inc.b",
    "x86inc.h",
    "x86inc.w",
    "x86inc.d",
    "x86dec.b",
    "x86dec.h",
    "x86dec.w",
    "x86dec.d",
    "x86settm",
    "x86clrtm",
    "x86inctop",
    "x86dectop",
    "asrtle.d",
    "asrtgt.d",
    "alsl.w",
    "alsl.wu",
    "bytepick.w",
    "bytepick.d",
    "add.w",
    "add.d",
    "sub.w",
    "sub.d",
    "slt",
    "sltu",
    "maskeqz",
    "masknez",
    "nor",
    "and",
    "or",
    "xor",
    "orn",
    "andn",
    "sll.w",
    "srl.w",
    "sra.w",
    "sll.d",
    "srl.d",
    "sra.d",
    "rotr.b",
    "rotr.h",
    "rotr.w",
    "rotr.d",
    "mul.w",
    "mulh.w",
    "mulh.wu",
    "mul.d",
    "mulh.d",
    "mulh.du",
    "mulw.d_w",
    "mulw.d_wu",
    "div.w",
    "mod.w",
    "div.wu",
    "mod.wu",
    "div.d",
    "mod.d",
    "div.du",
    "mod.du",
    "crc.w_b_w",
    "crc.w_h_w",
    "crc.w_w_w",
    "crc.w_d_w",
    "crcc.w_b_w",
    "crcc.w_h_w",
    "crcc.w_w_w",
    "crcc.w_d_w",
    "addu12i.w",
    "addu12i.d",
    "break",
    "dbgcall",
    "syscall",
    "hypcall",
    "alsl.d",
    "adc.b",
    "adc.h",
    "adc.w",
    "adc.d",
    "sbc.b",
    "sbc.h",
    "sbc.w",
    "sbc.d",
    "rcr.b",
    "rcr.h",
    "rcr.w",
    "rcr.d",
    "armmove",
    "setx86j",
    "setarmj",
    "armadd.w",
    "armsub.w",
    "armadc.w",
    "armsbc.w",
    "armand.w",
    "armor.w",
    "armxor.w",
    "armsll.w",
    "armsrl.w",
    "armsra.w",
    "armrotr.w",
    "armslli.w",
    "armsrli.w",
    "armsrai.w",
    "armrotri.w",
    "x86mul.b",
    "x86mul.h",
    "x86mul.w",
    "x86mul.d",
    "x86mul.bu",
    "x86mul.hu",
    "x86mul.wu",
    "x86mul.du",
    "x86add.wu",
    "x86add.du",
    "x86sub.wu",
    "x86sub.du",
    "x86add.b",
    "x86add.h",
    "x86add.w",
    "x86add.d",
    "x86sub.b",
    "x86sub.h",
    "x86sub.w",
    "x86sub.d",
    "x86adc.b",
    "x86adc.h",
    "x86adc.w",
    "x86adc.d",
    "x86sbc.b",
    "x86sbc.h",
    "x86sbc.w",
    "x86sbc.d",
    "x86sll.b",
    "x86sll.h",
    "x86sll.w",
    "x86sll.d",
    "x86srl.b",
    "x86srl.h",
    "x86srl.w",
    "x86srl.d",
    "x86sra.b",
    "x86sra.h",
    "x86sra.w",
    "x86sra.d",
    "x86rotr.b",
    "x86rotr.h",
    "x86rotr.d",
    "x86rotr.w",
    "x86rotl.b",
    "x86rotl.h",
    "x86rotl.w",
    "x86rotl.d",
    "x86rcr.b",
    "x86rcr.h",
    "x86rcr.w",
    "x86rcr.d",
    "x86rcl.b",
    "x86rcl.h",
    "x86rcl.w",
    "x86rcl.d",
    "x86and.b",
    "x86and.h",
    "x86and.w",
    "x86and.d",
    "x86or.b",
    "x86or.h",
    "x86or.w",
    "x86or.d",
    "x86xor.b",
    "x86xor.h",
    "x86xor.w",
    "x86xor.d",
    "armnot.w",
    "armmov.w",
    "armmov.d",
    "armrrx.w",
    "slli.w",
    "slli.d",
    "srli.w",
    "srli.d",
    "srai.w",
    "srai.d",
    "rotri.b",
    "rotri.h",
    "rotri.w",
    "rotri.d",
    "rcri.b",
    "rcri.h",
    "rcri.w",
    "rcri.d",
    "x86slli.b",
    "x86slli.h",
    "x86slli.w",
    "x86slli.d",
    "x86srli.b",
    "x86srli.h",
    "x86srli.w",
    "x86srli.d",
    "x86srai.b",
    "x86srai.h",
    "x86srai.w",
    "x86srai.d",
    "x86rotri.b",
    "x86rotri.h",
    "x86rotri.w",
    "x86rotri.d",
    "x86rcri.b",
    "x86rcri.h",
    "x86rcri.w",
    "x86rcri.d",
    "x86rotli.b",
    "x86rotli.h",
    "x86rotli.w",
    "x86rotli.d",
    "x86rcli.b",
    "x86rcli.h",
    "x86rcli.w",
    "x86rcli.d",
    "x86settag",
    "x86mfflag",
    "x86mtflag",
    "armmfflag",
    "armmtflag",
    "bstrins.w",
    "bstrpick.w",
    "bstrins.d",
    "bstrpick.d",
    "slti",
    "sltui",
    "addi.w",
    "addi.d",
    "lu52i.d",
    "andi",
    "ori",
    "xori",
    "addu16i.d",
    "lu12i.w",
    "lu32i.d",
    "pcaddi",
    "pcalau12i",
    "pcaddu12i",
    "pcaddu18i",
    "ll.w",
    "sc.w",
    "ll.d",
    "sc.d",
    "ldptr.w",
    "stptr.w",
    "ldptr.d",
    "stptr.d",
    "ld.b",
    "ld.h",
    "ld.w",
    "ld.d",
    "st.b",
    "st.h",
    "st.w",
    "st.d",
    "ld.bu",
    "ld.hu",
    "ld.wu",
    "preld",
    "fld.s",
    "fst.s",
    "fld.d",
    "fst.d",
    "vld",
    "vst",
    "xvld",
    "xvst",
    "ldl.w",
    "ldr.w",
    "ldl.d",
    "ldr.d",
    "stl.w",
    "str.w",
    "stl.d",
    "str.d",
    "vldrepl.d",
    "vldrepl.w",
    "vldrepl.h",
    "vldrepl.b",
    "vstelm.d",
    "vstelm.w",
    "vstelm.h",
    "vstelm.b",
    "xvldrepl.d",
    "xvldrepl.w",
    "xvldrepl.h",
    "xvldrepl.b",
    "xvstelm.d",
    "xvstelm.w",
    "xvstelm.h",
    "xvstelm.b",
    "ldx.b",
    "ldx.h",
    "ldx.w",
    "ldx.d",
    "stx.b",
    "stx.h",
    "stx.w",
    "stx.d",
    "ldx.bu",
    "ldx.hu",
    "ldx.wu",
    "preldx",
    "fldx.s",
    "fldx.d",
    "fstx.s",
    "fstx.d",
    "vldx",
    "vstx",
    "xvldx",
    "xvstx",
    "amswap.w",
    "amswap.d",
    "amadd.w",
    "amadd.d",
    "amand.w",
    "amand.d",
    "amor.w",
    "amor.d",
    "amxor.w",
    "amxor.d",
    "ammax.w",
    "ammax.d",
    "ammin.w",
    "ammin.d",
    "ammax.wu",
    "ammax.du",
    "ammin.wu",
    "ammin.du",
    "amswap.db_w",
    "amswap.db_d",
    "amadd.db_w",
    "amadd.db_d",
    "amand.db_w",
    "amand.db_d",
    "amor.db_w",
    "amor.db_d",
    "amxor.db_w",
    "amxor.db_d",
    "ammax.db_w",
    "ammax.db_d",
    "ammin.db_w",
    "ammin.db_d",
    "ammax.db_wu",
    "ammax.db_du",
    "ammin.db_wu",
    "ammin.db_du",
    "dbar",
    "ibar",
    "fldgt.s",
    "fldgt.d",
    "fldle.s",
    "fldle.d",
    "fstgt.s",
    "fstgt.d",
    "fstle.s",
    "fstle.d",
    "ldgt.b",
    "ldgt.h",
    "ldgt.w",
    "ldgt.d",
    "ldle.b",
    "ldle.h",
    "ldle.w",
    "ldle.d",
    "stgt.b",
    "stgt.h",
    "stgt.w",
    "stgt.d",
    "stle.b",
    "stle.h",
    "stle.w",
    "stle.d",
    "beqz",
    "bnez",
    "bceqz",
    "bcnez",
    "jiscr0",
    "jiscr1",
    "jirl",
    "b",
    "bl",
    "beq",
    "bne",
    "blt",
    "bge",
    "bltu",
    "bgeu",
    "fadd.s",
    "fadd.d",
    "fsub.s",
    "fsub.d",
    "fmul.s",
    "fmul.d",
    "fdiv.s",
    "fdiv.d",
    "fmax.s",
    "fmax.d",
    "fmin.s",
    "fmin.d",
    "fmaxa.s",
    "fmaxa.d",
    "fmina.s",
    "fmina.d",
    "fscaleb.s",
    "fscaleb.d",
    "fcopysign.s",
    "fcopysign.d",
    "fabs.s",
    "fabs.d",
    "fneg.s",
    "fneg.d",
    "flogb.s",
    "flogb.d",
    "fclass.s",
    "fclass.d",
    "fsqrt.s",
    "fsqrt.d",
    "frecip.s",
    "frecip.d",
    "frsqrt.s",
    "frsqrt.d",
    "fmov.s",
    "fmov.d",
    "movgr2fr.w",
    "movgr2fr.d",
    "movgr2frh.w",
    "movfr2gr.s",
    "movfr2gr.d",
    "movfrh2gr.s",
    "movgr2fcsr",
    "movfcsr2gr",
    "movfr2cf",
    "movcf2fr",
    "movgr2cf",
    "movcf2gr",
    "fcvt.ld_d",
    "fcvt.ud_d",
    "fcvt.d_ld",
    "fcvt.s_d",
    "fcvt.d_s",
    "ftintrm.w_s",
    "ftintrm.w_d",
    "ftintrm.l_s",
    "ftintrm.l_d",
    "ftintrp.w_s",
    "ftintrp.w_d",
    "ftintrp.l_s",
    "ftintrp.l_d",
    "ftintrz.w_s",
    "ftintrz.w_d",
    "ftintrz.l_s",
    "ftintrz.l_d",
    "ftintrne.w_s",
    "ftintrne.w_d",
    "ftintrne.l_s",
    "ftintrne.l_d",
    "ftint.w_s",
    "ftint.w_d",
    "ftint.l_s",
    "ftint.l_d",
    "ffint.s_w",
    "ffint.s_l",
    "ffint.d_w",
    "ffint.d_l",
    "frint.s",
    "frint.d",
    "fmadd.s",
    "fmadd.d",
    "fmsub.s",
    "fmsub.d",
    "fnmadd.s",
    "fnmadd.d",
    "fnmsub.s",
    "fnmsub.d",
    "vfmadd.s",
    "vfmadd.d",
    "vfmsub.s",
    "vfmsub.d",
    "vfnmadd.s",
    "vfnmadd.d",
    "vfnmsub.s",
    "vfnmsub.d",
    "xvfmadd.s",
    "xvfmadd.d",
    "xvfmsub.s",
    "xvfmsub.d",
    "xvfnmadd.s",
    "xvfnmadd.d",
    "xvfnmsub.s",
    "xvfnmsub.d",
    "fcmp.cond_s",
    "fcmp.cond_d",
    "vfcmp.cond_s",
    "vfcmp.cond_d",
    "xvfcmp.cond_s",
    "xvfcmp.cond_d",
    "fsel",
    "vbitsel.v",
    "xvbitsel.v",
    "vshuf.b",
    "xvshuf.b",
    "vextr.v",
    "xvextr.v",
    "vfmaddsub.s",
    "vfmaddsub.d",
    "vfmsubadd.s",
    "vfmsubadd.d",
    "xvfmaddsub.s",
    "xvfmaddsub.d",
    "xvfmsubadd.s",
    "xvfmsubadd.d",
    "vseq.b",
    "vseq.h",
    "vseq.w",
    "vseq.d",
    "vsle.b",
    "vsle.h",
    "vsle.w",
    "vsle.d",
    "vsle.bu",
    "vsle.hu",
    "vsle.wu",
    "vsle.du",
    "vslt.b",
    "vslt.h",
    "vslt.w",
    "vslt.d",
    "vslt.bu",
    "vslt.hu",
    "vslt.wu",
    "vslt.du",
    "vadd.b",
    "vadd.h",
    "vadd.w",
    "vadd.d",
    "vsub.b",
    "vsub.h",
    "vsub.w",
    "vsub.d",
    "vaddw.h_h_b",
    "vaddw.w_w_h",
    "vaddw.d_d_w",
    "vaddw.h_h_bu",
    "vaddw.w_w_hu",
    "vaddw.d_d_wu",
    "vsubw.h_h_b",
    "vsubw.w_w_h",
    "vsubw.d_d_w",
    "vsubw.h_h_bu",
    "vsubw.w_w_hu",
    "vsubw.d_d_wu",
    "vsaddw.h_h_b",
    "vsaddw.w_w_h",
    "vsaddw.d_d_w",
    "vsaddw.hu_hu_bu",
    "vsaddw.wu_wu_hu",
    "vsaddw.du_du_wu",
    "vssubw.h_h_b",
    "vssubw.w_w_h",
    "vssubw.d_d_w",
    "vssubw.hu_hu_bu",
    "vssubw.wu_wu_hu",
    "vssubw.du_du_wu",
    "vaddwev.h_b",
    "vaddwev.w_h",
    "vaddwev.d_w",
    "vaddwev.q_d",
    "vsubwev.h_b",
    "vsubwev.w_h",
    "vsubwev.d_w",
    "vsubwev.q_d",
    "vaddwod.h_b",
    "vaddwod.w_h",
    "vaddwod.d_w",
    "vaddwod.q_d",
    "vsubwod.h_b",
    "vsubwod.w_h",
    "vsubwod.d_w",
    "vsubwod.q_d",
    "vaddwl.h_b",
    "vaddwl.w_h",
    "vaddwl.d_w",
    "vaddwl.q_d",
    "vsubwl.h_b",
    "vsubwl.w_h",
    "vsubwl.d_w",
    "vsubwl.q_d",
    "vaddwh.h_b",
    "vaddwh.w_h",
    "vaddwh.d_w",
    "vaddwh.q_d",
    "vsubwh.h_b",
    "vsubwh.w_h",
    "vsubwh.d_w",
    "vsubwh.q_d",
    "vaddwev.h_bu",
    "vaddwev.w_hu",
    "vaddwev.d_wu",
    "vaddwev.q_du",
    "vsubwev.h_bu",
    "vsubwev.w_hu",
    "vsubwev.d_wu",
    "vsubwev.q_du",
    "vaddwod.h_bu",
    "vaddwod.w_hu",
    "vaddwod.d_wu",
    "vaddwod.q_du",
    "vsubwod.h_bu",
    "vsubwod.w_hu",
    "vsubwod.d_wu",
    "vsubwod.q_du",
    "vaddwl.h_bu",
    "vaddwl.w_hu",
    "vaddwl.d_wu",
    "vaddwl.q_du",
    "vsubwl.h_bu",
    "vsubwl.w_hu",
    "vsubwl.d_wu",
    "vsubwl.q_du",
    "vaddwh.h_bu",
    "vaddwh.w_hu",
    "vaddwh.d_wu",
    "vaddwh.q_du",
    "vsubwh.h_bu",
    "vsubwh.w_hu",
    "vsubwh.d_wu",
    "vsubwh.q_du",
    "vaddwev.h_bu_b",
    "vaddwev.w_hu_h",
    "vaddwev.d_wu_w",
    "vaddwev.q_du_d",
    "vaddwod.h_bu_b",
    "vaddwod.w_hu_h",
    "vaddwod.d_wu_w",
    "vaddwod.q_du_d",
    "vaddwl.h_bu_b",
    "vaddwl.w_hu_h",
    "vaddwl.d_wu_w",
    "vaddwl.q_du_d",
    "vaddwh.h_bu_b",
    "vaddwh.w_hu_h",
    "vaddwh.d_wu_w",
    "vaddwh.q_du_d",
    "vsadd.b",
    "vsadd.h",
    "vsadd.w",
    "vsadd.d",
    "vssub.b",
    "vssub.h",
    "vssub.w",
    "vssub.d",
    "vsadd.bu",
    "vsadd.hu",
    "vsadd.wu",
    "vsadd.du",
    "vssub.bu",
    "vssub.hu",
    "vssub.wu",
    "vssub.du",
    "vssub.bu_bu_b",
    "vssub.hu_hu_h",
    "vssub.wu_wu_w",
    "vssub.du_du_d",
    "vssub.bu_b_bu",
    "vssub.hu_h_hu",
    "vssub.wu_w_wu",
    "vssub.du_d_du",
    "vssub.b_bu_bu",
    "vssub.h_hu_hu",
    "vssub.w_wu_wu",
    "vssub.d_du_du",
    "vhaddw.h_b",
    "vhaddw.w_h",
    "vhaddw.d_w",
    "vhaddw.q_d",
    "vhsubw.h_b",
    "vhsubw.w_h",
    "vhsubw.d_w",
    "vhsubw.q_d",
    "vhaddw.hu_bu",
    "vhaddw.wu_hu",
    "vhaddw.du_wu",
    "vhaddw.qu_du",
    "vhsubw.hu_bu",
    "vhsubw.wu_hu",
    "vhsubw.du_wu",
    "vhsubw.qu_du",
    "vadda.b",
    "vadda.h",
    "vadda.w",
    "vadda.d",
    "vsadda.b",
    "vsadda.h",
    "vsadda.w",
    "vsadda.d",
    "vabsd.b",
    "vabsd.h",
    "vabsd.w",
    "vabsd.d",
    "vabsd.bu",
    "vabsd.hu",
    "vabsd.wu",
    "vabsd.du",
    "vavg.b",
    "vavg.h",
    "vavg.w",
    "vavg.d",
    "vavg.bu",
    "vavg.hu",
    "vavg.wu",
    "vavg.du",
    "vavgr.b",
    "vavgr.h",
    "vavgr.w",
    "vavgr.d",
    "vavgr.bu",
    "vavgr.hu",
    "vavgr.wu",
    "vavgr.du",
    "vhalfd.b",
    "vhalfd.h",
    "vhalfd.w",
    "vhalfd.d",
    "vhalfd.bu",
    "vhalfd.hu",
    "vhalfd.wu",
    "vhalfd.du",
    "vmax.b",
    "vmax.h",
    "vmax.w",
    "vmax.d",
    "vmin.b",
    "vmin.h",
    "vmin.w",
    "vmin.d",
    "vmax.bu",
    "vmax.hu",
    "vmax.wu",
    "vmax.du",
    "vmin.bu",
    "vmin.hu",
    "vmin.wu",
    "vmin.du",
    "vmaxa.b",
    "vmaxa.h",
    "vmaxa.w",
    "vmaxa.d",
    "vmina.b",
    "vmina.h",
    "vmina.w",
    "vmina.d",
    "vsadw.h_b",
    "vsadw.w_h",
    "vsadw.d_w",
    "vsadw.h_bu",
    "vsadw.w_hu",
    "vsadw.d_wu",
    "vaccsadw.h_b",
    "vaccsadw.w_h",
    "vaccsadw.d_w",
    "vaccsadw.h_bu",
    "vaccsadw.w_hu",
    "vaccsadw.d_wu",
    "vmul.b",
    "vmul.h",
    "vmul.w",
    "vmul.d",
    "vmuh.b",
    "vmuh.h",
    "vmuh.w",
    "vmuh.d",
    "vmuh.bu",
    "vmuh.hu",
    "vmuh.wu",
    "vmuh.du",
    "vmuh.bu_b",
    "vmuh.hu_h",
    "vmuh.wu_w",
    "vmuh.du_d",
    "vmulxw.h_b",
    "vmulxw.w_h",
    "vmulxw.d_w",
    "vmulxw.h_bu",
    "vmulxw.w_hu",
    "vmulxw.d_wu",
    "vmulwev.h_b",
    "vmulwev.w_h",
    "vmulwev.d_w",
    "vmulwev.q_d",
    "vmulwod.h_b",
    "vmulwod.w_h",
    "vmulwod.d_w",
    "vmulwod.q_d",
    "vmulwl.h_b",
    "vmulwl.w_h",
    "vmulwl.d_w",
    "vmulwl.q_d",
    "vmulwh.h_b",
    "vmulwh.w_h",
    "vmulwh.d_w",
    "vmulwh.q_d",
    "vmulwev.h_bu",
    "vmulwev.w_hu",
    "vmulwev.d_wu",
    "vmulwev.q_du",
    "vmulwod.h_bu",
    "vmulwod.w_hu",
    "vmulwod.d_wu",
    "vmulwod.q_du",
    "vmulwl.h_bu",
    "vmulwl.w_hu",
    "vmulwl.d_wu",
    "vmulwl.q_du",
    "vmulwh.h_bu",
    "vmulwh.w_hu",
    "vmulwh.d_wu",
    "vmulwh.q_du",
    "vmulwev.h_bu_b",
    "vmulwev.w_hu_h",
    "vmulwev.d_wu_w",
    "vmulwev.q_du_d",
    "vmulwod.h_bu_b",
    "vmulwod.w_hu_h",
    "vmulwod.d_wu_w",
    "vmulwod.q_du_d",
    "vmulwl.h_bu_b",
    "vmulwl.w_hu_h",
    "vmulwl.d_wu_w",
    "vmulwl.q_du_d",
    "vmulwh.h_bu_b",
    "vmulwh.w_hu_h",
    "vmulwh.d_wu_w",
    "vmulwh.q_du_d",
    "vmadd.b",
    "vmadd.h",
    "vmadd.w",
    "vmadd.d",
    "vmsub.b",
    "vmsub.h",
    "vmsub.w",
    "vmsub.d",
    "vmaddwev.h_b",
    "vmaddwev.w_h",
    "vmaddwev.d_w",
    "vmaddwev.q_d",
    "vmaddwod.h_b",
    "vmaddwod.w_h",
    "vmaddwod.d_w",
    "vmaddwod.q_d",
    "vmaddwl.h_b",
    "vmaddwl.w_h",
    "vmaddwl.d_w",
    "vmaddwl.q_d",
    "vmaddwh.h_b",
    "vmaddwh.w_h",
    "vmaddwh.d_w",
    "vmaddwh.q_d",
    "vmaddwev.h_bu",
    "vmaddwev.w_hu",
    "vmaddwev.d_wu",
    "vmaddwev.q_du",
    "vmaddwod.h_bu",
    "vmaddwod.w_hu",
    "vmaddwod.d_wu",
    "vmaddwod.q_du",
    "vmaddwl.h_bu",
    "vmaddwl.w_hu",
    "vmaddwl.d_wu",
    "vmaddwl.q_du",
    "vmaddwh.h_bu",
    "vmaddwh.w_hu",
    "vmaddwh.d_wu",
    "vmaddwh.q_du",
    "vmaddwev.h_bu_b",
    "vmaddwev.w_hu_h",
    "vmaddwev.d_wu_w",
    "vmaddwev.q_du_d",
    "vmaddwod.h_bu_b",
    "vmaddwod.w_hu_h",
    "vmaddwod.d_wu_w",
    "vmaddwod.q_du_d",
    "vmaddwl.h_bu_b",
    "vmaddwl.w_hu_h",
    "vmaddwl.d_wu_w",
    "vmaddwl.q_du_d",
    "vmaddwh.h_bu_b",
    "vmaddwh.w_hu_h",
    "vmaddwh.d_wu_w",
    "vmaddwh.q_du_d",
    "vdp2.h_b",
    "vdp2.w_h",
    "vdp2.d_w",
    "vdp2.q_d",
    "vdp2.hu_bu",
    "vdp2.wu_hu",
    "vdp2.du_wu",
    "vdp2.qu_du",
    "vdp2.h_bu_b",
    "vdp2.w_hu_h",
    "vdp2.d_wu_w",
    "vdp2.q_du_d",
    "vdp2add.h_b",
    "vdp2add.w_h",
    "vdp2add.d_w",
    "vdp2add.q_d",
    "vdp2add.h_bu",
    "vdp2add.w_hu",
    "vdp2add.d_wu",
    "vdp2add.q_du",
    "vdp2add.h_bu_b",
    "vdp2add.w_hu_h",
    "vdp2add.d_wu_w",
    "vdp2add.q_du_d",
    "vdp2sub.h_b",
    "vdp2sub.w_h",
    "vdp2sub.d_w",
    "vdp2sub.q_d",
    "vdp2sub.h_bu",
    "vdp2sub.w_hu",
    "vdp2sub.d_wu",
    "vdp2sub.q_du",
    "vdp4.w_b",
    "vdp4.d_h",
    "vdp4.q_w",
    "vdp4.w_bu",
    "vdp4.d_hu",
    "vdp4.q_wu",
    "vdp4.w_bu_b",
    "vdp4.d_hu_h",
    "vdp4.q_wu_w",
    "vdp4add.w_b",
    "vdp4add.d_h",
    "vdp4add.q_w",
    "vdp4add.w_bu",
    "vdp4add.d_hu",
    "vdp4add.q_wu",
    "vdp4add.w_bu_b",
    "vdp4add.d_hu_h",
    "vdp4add.q_wu_w",
    "vdiv.b",
    "vdiv.h",
    "vdiv.w",
    "vdiv.d",
    "vmod.b",
    "vmod.h",
    "vmod.w",
    "vmod.d",
    "vdiv.bu",
    "vdiv.hu",
    "vdiv.wu",
    "vdiv.du",
    "vmod.bu",
    "vmod.hu",
    "vmod.wu",
    "vmod.du",
    "vsll.b",
    "vsll.h",
    "vsll.w",
    "vsll.d",
    "vsrl.b",
    "vsrl.h",
    "vsrl.w",
    "vsrl.d",
    "vsra.b",
    "vsra.h",
    "vsra.w",
    "vsra.d",
    "vrotr.b",
    "vrotr.h",
    "vrotr.w",
    "vrotr.d",
    "vsrlr.b",
    "vsrlr.h",
    "vsrlr.w",
    "vsrlr.d",
    "vsrar.b",
    "vsrar.h",
    "vsrar.w",
    "vsrar.d",
    "vsrln.b_h",
    "vsrln.h_w",
    "vsrln.w_d",
    "vsran.b_h",
    "vsran.h_w",
    "vsran.w_d",
    "vsrlrn.b_h",
    "vsrlrn.h_w",
    "vsrlrn.w_d",
    "vsrarn.b_h",
    "vsrarn.h_w",
    "vsrarn.w_d",
    "vssrln.b_h",
    "vssrln.h_w",
    "vssrln.w_d",
    "vssran.b_h",
    "vssran.h_w",
    "vssran.w_d",
    "vssrlrn.b_h",
    "vssrlrn.h_w",
    "vssrlrn.w_d",
    "vssrarn.b_h",
    "vssrarn.h_w",
    "vssrarn.w_d",
    "vssrln.bu_h",
    "vssrln.hu_w",
    "vssrln.wu_d",
    "vssran.bu_h",
    "vssran.hu_w",
    "vssran.wu_d",
    "vssrlrn.bu_h",
    "vssrlrn.hu_w",
    "vssrlrn.wu_d",
    "vssrarn.bu_h",
    "vssrarn.hu_w",
    "vssrarn.wu_d",
    "vbitclr.b",
    "vbitclr.h",
    "vbitclr.w",
    "vbitclr.d",
    "vbitset.b",
    "vbitset.h",
    "vbitset.w",
    "vbitset.d",
    "vbitrev.b",
    "vbitrev.h",
    "vbitrev.w",
    "vbitrev.d",
    "vbstrc12.b",
    "vbstrc12.h",
    "vbstrc12.w",
    "vbstrc12.d",
    "vbstrc21.b",
    "vbstrc21.h",
    "vbstrc21.w",
    "vbstrc21.d",
    "vpackev.b",
    "vpackev.h",
    "vpackev.w",
    "vpackev.d",
    "vpackod.b",
    "vpackod.h",
    "vpackod.w",
    "vpackod.d",
    "vilvl.b",
    "vilvl.h",
    "vilvl.w",
    "vilvl.d",
    "vilvh.b",
    "vilvh.h",
    "vilvh.w",
    "vilvh.d",
    "vpickev.b",
    "vpickev.h",
    "vpickev.w",
    "vpickev.d",
    "vpickod.b",
    "vpickod.h",
    "vpickod.w",
    "vpickod.d",
    "vreplve.b",
    "vreplve.h",
    "vreplve.w",
    "vreplve.d",
    "vextrcol.b",
    "vextrcol.h",
    "vextrcol.w",
    "vextrcol.d",
    "vand.v",
    "vor.v",
    "vxor.v",
    "vnor.v",
    "vandn.v",
    "vorn.v",
    "vrandsign.b",
    "vrandsign.h",
    "vrorsign.b",
    "vrorsign.h",
    "vfrstp.b",
    "vfrstp.h",
    "vclrstrr.v",
    "vclrstrv.v",
    "vadd.q",
    "vsub.q",
    "vsigncov.b",
    "vsigncov.h",
    "vsigncov.w",
    "vsigncov.d",
    "vfadd.s",
    "vfadd.d",
    "vfsub.s",
    "vfsub.d",
    "vfaddsub.s",
    "vfaddsub.d",
    "vfsubadd.s",
    "vfsubadd.d",
    "vfmul.s",
    "vfmul.d",
    "vfdiv.s",
    "vfdiv.d",
    "vfmax.s",
    "vfmax.d",
    "vfmin.s",
    "vfmin.d",
    "vfmaxa.s",
    "vfmaxa.d",
    "vfmina.s",
    "vfmina.d",
    "vfscaleb.s",
    "vfscaleb.d",
    "vfcvt.h_s",
    "vfcvt.s_d",
    "vffint.s_l",
    "vftint.w_d",
    "vftintrm.w_d",
    "vftintrp.w_d",
    "vftintrz.w_d",
    "vftintrne.w_d",
    "vhadd4.h_bu",
    "vshuf4.w",
    "vshuf2.d",
    "aes128.enc",
    "aes128.dec",
    "aes192.enc",
    "aes192.dec",
    "aes256.enc",
    "aes256.dec",
    "aes.kg",
    "aes.fr_enc",
    "aes.fr_dec",
    "aes.lr_enc",
    "aes.lr_dec",
    "aes.mc_enc",
    "aes.mc_dec",
    "aes.sb_enc",
    "aes.sb_dec",
    "aes.sr_enc",
    "aes.sr_dec",
    "md5.ms",
    "md5.4r",
    "sha1.ms_1",
    "sha1.ms_2",
    "sha1.hash_4r",
    "sha256.ms_1",
    "sha256.ms_2",
    "sha256.hash_2r",
    "sha512.ms_1",
    "sha512.ms_2",
    "sha512.hash_r_1",
    "sha512.hash_r_2",
    "vpmul.w",
    "vpmul.d",
    "vpmuh.w",
    "vpmuh.d",
    "vpmulacc.w",
    "vpmulacc.d",
    "vpmuhacc.w",
    "vpmuhacc.d",
    "vpmulwl.h_b",
    "vpmulwl.w_h",
    "vpmulwl.d_w",
    "vpmulwl.q_d",
    "vpmulwh.h_b",
    "vpmulwh.w_h",
    "vpmulwh.d_w",
    "vpmulwh.q_d",
    "vpmaddwl.h_b",
    "vpmaddwl.w_h",
    "vpmaddwl.d_w",
    "vpmaddwl.q_d",
    "vpmaddwh.h_b",
    "vpmaddwh.w_h",
    "vpmaddwh.d_w",
    "vpmaddwh.q_d",
    "vpdp2.q_d",
    "vpdp2add.q_d",
    "vcdp4.re_d_h",
    "vcdp4.im_d_h",
    "vcdp4add.re_d_h",
    "vcdp4add.im_d_h",
    "vcdp2.re_q_w",
    "vcdp2.im_q_w",
    "vcdp2add.re_q_w",
    "vcdp2add.im_q_w",
    "vsignsel.w",
    "vsignsel.d",
    "vshuf.h",
    "vshuf.w",
    "vshuf.d",
    "vseqi.b",
    "vseqi.h",
    "vseqi.w",
    "vseqi.d",
    "vslei.b",
    "vslei.h",
    "vslei.w",
    "vslei.d",
    "vslei.bu",
    "vslei.hu",
    "vslei.wu",
    "vslei.du",
    "vslti.b",
    "vslti.h",
    "vslti.w",
    "vslti.d",
    "vslti.bu",
    "vslti.hu",
    "vslti.wu",
    "vslti.du",
    "vaddi.bu",
    "vaddi.hu",
    "vaddi.wu",
    "vaddi.du",
    "vsubi.bu",
    "vsubi.hu",
    "vsubi.wu",
    "vsubi.du",
    "vbsll.v",
    "vbsrl.v",
    "vmaxi.b",
    "vmaxi.h",
    "vmaxi.w",
    "vmaxi.d",
    "vmini.b",
    "vmini.h",
    "vmini.w",
    "vmini.d",
    "vmaxi.bu",
    "vmaxi.hu",
    "vmaxi.wu",
    "vmaxi.du",
    "vmini.bu",
    "vmini.hu",
    "vmini.wu",
    "vmini.du",
    "vrandsigni.b",
    "vrandsigni.h",
    "vrorsigni.b",
    "vrorsigni.h",
    "vfrstpi.b",
    "vfrstpi.h",
    "vclrstri.v",
    "vmepatmsk.v",
    "vclo.b",
    "vclo.h",
    "vclo.w",
    "vclo.d",
    "vclz.b",
    "vclz.h",
    "vclz.w",
    "vclz.d",
    "vpcnt.b",
    "vpcnt.h",
    "vpcnt.w",
    "vpcnt.d",
    "vneg.b",
    "vneg.h",
    "vneg.w",
    "vneg.d",
    "vmskltz.b",
    "vmskltz.h",
    "vmskltz.w",
    "vmskltz.d",
    "vmskgez.b",
    "vmsknz.b",
    "vmskcopy.b",
    "vmskfill.b",
    "vfrstm.b",
    "vfrstm.h",
    "vseteqz.v",
    "vsetnez.v",
    "vsetanyeqz.b",
    "vsetanyeqz.h",
    "vsetanyeqz.w",
    "vsetanyeqz.d",
    "vsetallnez.b",
    "vsetallnez.h",
    "vsetallnez.w",
    "vsetallnez.d",
    "vflogb.s",
    "vflogb.d",
    "vfclass.s",
    "vfclass.d",
    "vfsqrt.s",
    "vfsqrt.d",
    "vfrecip.s",
    "vfrecip.d",
    "vfrsqrt.s",
    "vfrsqrt.d",
    "vfrint.s",
    "vfrint.d",
    "vfrintrm.s",
    "vfrintrm.d",
    "vfrintrp.s",
    "vfrintrp.d",
    "vfrintrz.s",
    "vfrintrz.d",
    "vfrintrne.s",
    "vfrintrne.d",
    "vextl.w_b",
    "vextl.d_b",
    "vextl.d_h",
    "vextl.w_bu",
    "vextl.d_bu",
    "vextl.d_hu",
    "vhadd8.d_bu",
    "vhminpos.w_hu",
    "vhminpos.d_hu",
    "vhminpos.q_hu",
    "vclrtail.b",
    "vclrtail.h",
    "vfcvtl.s_h",
    "vfcvth.s_h",
    "vfcvtl.d_s",
    "vfcvth.d_s",
    "vffint.s_w",
    "vffint.s_wu",
    "vffint.d_l",
    "vffint.d_lu",
    "vffintl.d_w",
    "vffinth.d_w",
    "vftint.w_s",
    "vftint.l_d",
    "vftintrm.w_s",
    "vftintrm.l_d",
    "vftintrp.w_s",
    "vftintrp.l_d",
    "vftintrz.w_s",
    "vftintrz.l_d",
    "vftintrne.w_s",
    "vftintrne.l_d",
    "vftint.wu_s",
    "vftint.lu_d",
    "vftintrz.wu_s",
    "vftintrz.lu_d",
    "vftintl.l_s",
    "vftinth.l_s",
    "vftintrml.l_s",
    "vftintrmh.l_s",
    "vftintrpl.l_s",
    "vftintrph.l_s",
    "vftintrzl.l_s",
    "vftintrzh.l_s",
    "vftintrnel.l_s",
    "vftintrneh.l_s",
    "vexth.h_b",
    "vexth.w_h",
    "vexth.d_w",
    "vexth.q_d",
    "vexth.hu_bu",
    "vexth.wu_hu",
    "vexth.du_wu",
    "vexth.qu_du",
    "vreplgr2vr.b",
    "vreplgr2vr.h",
    "vreplgr2vr.w",
    "vreplgr2vr.d",
    "vrotri.b",
    "vrotri.h",
    "vrotri.w",
    "vrotri.d",
    "vsrlri.b",
    "vsrlri.h",
    "vsrlri.w",
    "vsrlri.d",
    "vsrari.b",
    "vsrari.h",
    "vsrari.w",
    "vsrari.d",
    "vinsgr2vr.b",
    "vinsgr2vr.h",
    "vinsgr2vr.w",
    "vinsgr2vr.d",
    "vpickve2gr.b",
    "vpickve2gr.h",
    "vpickve2gr.w",
    "vpickve2gr.d",
    "vpickve2gr.bu",
    "vpickve2gr.hu",
    "vpickve2gr.wu",
    "vpickve2gr.du",
    "vreplvei.b",
    "vreplvei.h",
    "vreplvei.w",
    "vreplvei.d",
    "vextrcoli.b",
    "vextrcoli.h",
    "vextrcoli.w",
    "vextrcoli.d",
    "vsllwil.h_b",
    "vsllwil.w_h",
    "vsllwil.d_w",
    "vextl.q_d",
    "vsllwil.hu_bu",
    "vsllwil.wu_hu",
    "vsllwil.du_wu",
    "vextl.qu_du",
    "vbitclri.b",
    "vbitclri.h",
    "vbitclri.w",
    "vbitclri.d",
    "vbitseti.b",
    "vbitseti.h",
    "vbitseti.w",
    "vbitseti.d",
    "vbitrevi.b",
    "vbitrevi.h",
    "vbitrevi.w",
    "vbitrevi.d",
    "vbstrc12i.b",
    "vbstrc12i.h",
    "vbstrc12i.w",
    "vbstrc12i.d",
    "vbstrc21i.b",
    "vbstrc21i.h",
    "vbstrc21i.w",
    "vbstrc21i.d",
    "vsat.b",
    "vsat.h",
    "vsat.w",
    "vsat.d",
    "vsat.bu",
    "vsat.hu",
    "vsat.wu",
    "vsat.du",
    "vslli.b",
    "vslli.h",
    "vslli.w",
    "vslli.d",
    "vsrli.b",
    "vsrli.h",
    "vsrli.w",
    "vsrli.d",
    "vsrai.b",
    "vsrai.h",
    "vsrai.w",
    "vsrai.d",
    "vsrlrneni.b_h",
    "vsrlrneni.h_w",
    "vsrlrneni.w_d",
    "vsrlrneni.d_q",
    "vsrarneni.b_h",
    "vsrarneni.h_w",
    "vsrarneni.w_d",
    "vsrarneni.d_q",
    "vsrlni.b_h",
    "vsrlni.h_w",
    "vsrlni.w_d",
    "vsrlni.d_q",
    "vsrlrni.b_h",
    "vsrlrni.h_w",
    "vsrlrni.w_d",
    "vsrlrni.d_q",
    "vssrlni.b_h",
    "vssrlni.h_w",
    "vssrlni.w_d",
    "vssrlni.d_q",
    "vssrlni.bu_h",
    "vssrlni.hu_w",
    "vssrlni.wu_d",
    "vssrlni.du_q",
    "vssrlrni.b_h",
    "vssrlrni.h_w",
    "vssrlrni.w_d",
    "vssrlrni.d_q",
    "vssrlrni.bu_h",
    "vssrlrni.hu_w",
    "vssrlrni.wu_d",
    "vssrlrni.du_q",
    "vsrani.b_h",
    "vsrani.h_w",
    "vsrani.w_d",
    "vsrani.d_q",
    "vsrarni.b_h",
    "vsrarni.h_w",
    "vsrarni.w_d",
    "vsrarni.d_q",
    "vssrani.b_h",
    "vssrani.h_w",
    "vssrani.w_d",
    "vssrani.d_q",
    "vssrani.bu_h",
    "vssrani.hu_w",
    "vssrani.wu_d",
    "vssrani.du_q",
    "vssrarni.b_h",
    "vssrarni.h_w",
    "vssrarni.w_d",
    "vssrarni.d_q",
    "vssrarni.bu_h",
    "vssrarni.hu_w",
    "vssrarni.wu_d",
    "vssrarni.du_q",
    "vssrlrneni.b_h",
    "vssrlrneni.h_w",
    "vssrlrneni.w_d",
    "vssrlrneni.d_q",
    "vssrlrneni.bu_h",
    "vssrlrneni.hu_w",
    "vssrlrneni.wu_d",
    "vssrlrneni.du_q",
    "vssrarneni.b_h",
    "vssrarneni.h_w",
    "vssrarneni.w_d",
    "vssrarneni.d_q",
    "vssrarneni.bu_h",
    "vssrarneni.hu_w",
    "vssrarneni.wu_d",
    "vssrarneni.du_q",
    "vextrins.d",
    "vextrins.w",
    "vextrins.h",
    "vextrins.b",
    "vshuf4i.b",
    "vshuf4i.h",
    "vshuf4i.w",
    "vshuf4i.d",
    "vshufi1.b",
    "vshufi2.b",
    "vshufi3.b",
    "vshufi4.b",
    "vshufi1.h",
    "vshufi2.h",
    "vseli.h",
    "vseli.w",
    "vseli.d",
    "vbitseli.b",
    "vbitmvzi.b",
    "vbitmvnzi.b",
    "vandi.b",
    "vori.b",
    "vxori.b",
    "vnori.b",
    "vldi",
    "vpermi.w",
    "xvseq.b",
    "xvseq.h",
    "xvseq.w",
    "xvseq.d",
    "xvsle.b",
    "xvsle.h",
    "xvsle.w",
    "xvsle.d",
    "xvsle.bu",
    "xvsle.hu",
    "xvsle.wu",
    "xvsle.du",
    "xvslt.b",
    "xvslt.h",
    "xvslt.w",
    "xvslt.d",
    "xvslt.bu",
    "xvslt.hu",
    "xvslt.wu",
    "xvslt.du",
    "xvadd.b",
    "xvadd.h",
    "xvadd.w",
    "xvadd.d",
    "xvsub.b",
    "xvsub.h",
    "xvsub.w",
    "xvsub.d",
    "xvaddw.h_h_b",
    "xvaddw.w_w_h",
    "xvaddw.d_d_w",
    "xvaddw.h_h_bu",
    "xvaddw.w_w_hu",
    "xvaddw.d_d_wu",
    "xvsubw.h_h_b",
    "xvsubw.w_w_h",
    "xvsubw.d_d_w",
    "xvsubw.h_h_bu",
    "xvsubw.w_w_hu",
    "xvsubw.d_d_wu",
    "xvsaddw.h_h_b",
    "xvsaddw.w_w_h",
    "xvsaddw.d_d_w",
    "xvsaddw.hu_hu_bu",
    "xvsaddw.wu_wu_hu",
    "xvsaddw.du_du_wu",
    "xvssubw.h_h_b",
    "xvssubw.w_w_h",
    "xvssubw.d_d_w",
    "xvssubw.hu_hu_bu",
    "xvssubw.wu_wu_hu",
    "xvssubw.du_du_wu",
    "xvaddwev.h_b",
    "xvaddwev.w_h",
    "xvaddwev.d_w",
    "xvaddwev.q_d",
    "xvsubwev.h_b",
    "xvsubwev.w_h",
    "xvsubwev.d_w",
    "xvsubwev.q_d",
    "xvaddwod.h_b",
    "xvaddwod.w_h",
    "xvaddwod.d_w",
    "xvaddwod.q_d",
    "xvsubwod.h_b",
    "xvsubwod.w_h",
    "xvsubwod.d_w",
    "xvsubwod.q_d",
    "xvaddwl.h_b",
    "xvaddwl.w_h",
    "xvaddwl.d_w",
    "xvaddwl.q_d",
    "xvsubwl.h_b",
    "xvsubwl.w_h",
    "xvsubwl.d_w",
    "xvsubwl.q_d",
    "xvaddwh.h_b",
    "xvaddwh.w_h",
    "xvaddwh.d_w",
    "xvaddwh.q_d",
    "xvsubwh.h_b",
    "xvsubwh.w_h",
    "xvsubwh.d_w",
    "xvsubwh.q_d",
    "xvaddwev.h_bu",
    "xvaddwev.w_hu",
    "xvaddwev.d_wu",
    "xvaddwev.q_du",
    "xvsubwev.h_bu",
    "xvsubwev.w_hu",
    "xvsubwev.d_wu",
    "xvsubwev.q_du",
    "xvaddwod.h_bu",
    "xvaddwod.w_hu",
    "xvaddwod.d_wu",
    "xvaddwod.q_du",
    "xvsubwod.h_bu",
    "xvsubwod.w_hu",
    "xvsubwod.d_wu",
    "xvsubwod.q_du",
    "xvaddwl.h_bu",
    "xvaddwl.w_hu",
    "xvaddwl.d_wu",
    "xvaddwl.q_du",
    "xvsubwl.h_bu",
    "xvsubwl.w_hu",
    "xvsubwl.d_wu",
    "xvsubwl.q_du",
    "xvaddwh.h_bu",
    "xvaddwh.w_hu",
    "xvaddwh.d_wu",
    "xvaddwh.q_du",
    "xvsubwh.h_bu",
    "xvsubwh.w_hu",
    "xvsubwh.d_wu",
    "xvsubwh.q_du",
    "xvaddwev.h_bu_b",
    "xvaddwev.w_hu_h",
    "xvaddwev.d_wu_w",
    "xvaddwev.q_du_d",
    "xvaddwod.h_bu_b",
    "xvaddwod.w_hu_h",
    "xvaddwod.d_wu_w",
    "xvaddwod.q_du_d",
    "xvaddwl.h_bu_b",
    "xvaddwl.w_hu_h",
    "xvaddwl.d_wu_w",
    "xvaddwl.q_du_d",
    "xvaddwh.h_bu_b",
    "xvaddwh.w_hu_h",
    "xvaddwh.d_wu_w",
    "xvaddwh.q_du_d",
    "xvsadd.b",
    "xvsadd.h",
    "xvsadd.w",
    "xvsadd.d",
    "xvssub.b",
    "xvssub.h",
    "xvssub.w",
    "xvssub.d",
    "xvsadd.bu",
    "xvsadd.hu",
    "xvsadd.wu",
    "xvsadd.du",
    "xvssub.bu",
    "xvssub.hu",
    "xvssub.wu",
    "xvssub.du",
    "xvssub.bu_bu_b",
    "xvssub.hu_hu_h",
    "xvssub.wu_wu_w",
    "xvssub.du_du_d",
    "xvssub.bu_b_bu",
    "xvssub.hu_h_hu",
    "xvssub.wu_w_wu",
    "xvssub.du_d_du",
    "xvssub.b_bu_bu",
    "xvssub.h_hu_hu",
    "xvssub.w_wu_wu",
    "xvssub.d_du_du",
    "xvhaddw.h_b",
    "xvhaddw.w_h",
    "xvhaddw.d_w",
    "xvhaddw.q_d",
    "xvhsubw.h_b",
    "xvhsubw.w_h",
    "xvhsubw.d_w",
    "xvhsubw.q_d",
    "xvhaddw.hu_bu",
    "xvhaddw.wu_hu",
    "xvhaddw.du_wu",
    "xvhaddw.qu_du",
    "xvhsubw.hu_bu",
    "xvhsubw.wu_hu",
    "xvhsubw.du_wu",
    "xvhsubw.qu_du",
    "xvadda.b",
    "xvadda.h",
    "xvadda.w",
    "xvadda.d",
    "xvsadda.b",
    "xvsadda.h",
    "xvsadda.w",
    "xvsadda.d",
    "xvabsd.b",
    "xvabsd.h",
    "xvabsd.w",
    "xvabsd.d",
    "xvabsd.bu",
    "xvabsd.hu",
    "xvabsd.wu",
    "xvabsd.du",
    "xvavg.b",
    "xvavg.h",
    "xvavg.w",
    "xvavg.d",
    "xvavg.bu",
    "xvavg.hu",
    "xvavg.wu",
    "xvavg.du",
    "xvavgr.b",
    "xvavgr.h",
    "xvavgr.w",
    "xvavgr.d",
    "xvavgr.bu",
    "xvavgr.hu",
    "xvavgr.wu",
    "xvavgr.du",
    "xvhalfd.b",
    "xvhalfd.h",
    "xvhalfd.w",
    "xvhalfd.d",
    "xvhalfd.bu",
    "xvhalfd.hu",
    "xvhalfd.wu",
    "xvhalfd.du",
    "xvmax.b",
    "xvmax.h",
    "xvmax.w",
    "xvmax.d",
    "xvmin.b",
    "xvmin.h",
    "xvmin.w",
    "xvmin.d",
    "xvmax.bu",
    "xvmax.hu",
    "xvmax.wu",
    "xvmax.du",
    "xvmin.bu",
    "xvmin.hu",
    "xvmin.wu",
    "xvmin.du",
    "xvmaxa.b",
    "xvmaxa.h",
    "xvmaxa.w",
    "xvmaxa.d",
    "xvmina.b",
    "xvmina.h",
    "xvmina.w",
    "xvmina.d",
    "xvsadw.h_b",
    "xvsadw.w_h",
    "xvsadw.d_w",
    "xvsadw.h_bu",
    "xvsadw.w_hu",
    "xvsadw.d_wu",
    "xvaccsadw.h_b",
    "xvaccsadw.w_h",
    "xvaccsadw.d_w",
    "xvaccsadw.h_bu",
    "xvaccsadw.w_hu",
    "xvaccsadw.d_wu",
    "xvmul.b",
    "xvmul.h",
    "xvmul.w",
    "xvmul.d",
    "xvmuh.b",
    "xvmuh.h",
    "xvmuh.w",
    "xvmuh.d",
    "xvmuh.bu",
    "xvmuh.hu",
    "xvmuh.wu",
    "xvmuh.du",
    "xvmuh.bu_b",
    "xvmuh.hu_h",
    "xvmuh.wu_w",
    "xvmuh.du_d",
    "xvmulxw.h_b",
    "xvmulxw.w_h",
    "xvmulxw.d_w",
    "xvmulxw.h_bu",
    "xvmulxw.w_hu",
    "xvmulxw.d_wu",
    "xvmulwev.h_b",
    "xvmulwev.w_h",
    "xvmulwev.d_w",
    "xvmulwev.q_d",
    "xvmulwod.h_b",
    "xvmulwod.w_h",
    "xvmulwod.d_w",
    "xvmulwod.q_d",
    "xvmulwl.h_b",
    "xvmulwl.w_h",
    "xvmulwl.d_w",
    "xvmulwl.q_d",
    "xvmulwh.h_b",
    "xvmulwh.w_h",
    "xvmulwh.d_w",
    "xvmulwh.q_d",
    "xvmulwev.h_bu",
    "xvmulwev.w_hu",
    "xvmulwev.d_wu",
    "xvmulwev.q_du",
    "xvmulwod.h_bu",
    "xvmulwod.w_hu",
    "xvmulwod.d_wu",
    "xvmulwod.q_du",
    "xvmulwl.h_bu",
    "xvmulwl.w_hu",
    "xvmulwl.d_wu",
    "xvmulwl.q_du",
    "xvmulwh.h_bu",
    "xvmulwh.w_hu",
    "xvmulwh.d_wu",
    "xvmulwh.q_du",
    "xvmulwev.h_bu_b",
    "xvmulwev.w_hu_h",
    "xvmulwev.d_wu_w",
    "xvmulwev.q_du_d",
    "xvmulwod.h_bu_b",
    "xvmulwod.w_hu_h",
    "xvmulwod.d_wu_w",
    "xvmulwod.q_du_d",
    "xvmulwl.h_bu_b",
    "xvmulwl.w_hu_h",
    "xvmulwl.d_wu_w",
    "xvmulwl.q_du_d",
    "xvmulwh.h_bu_b",
    "xvmulwh.w_hu_h",
    "xvmulwh.d_wu_w",
    "xvmulwh.q_du_d",
    "xvmadd.b",
    "xvmadd.h",
    "xvmadd.w",
    "xvmadd.d",
    "xvmsub.b",
    "xvmsub.h",
    "xvmsub.w",
    "xvmsub.d",
    "xvmaddwev.h_b",
    "xvmaddwev.w_h",
    "xvmaddwev.d_w",
    "xvmaddwev.q_d",
    "xvmaddwod.h_b",
    "xvmaddwod.w_h",
    "xvmaddwod.d_w",
    "xvmaddwod.q_d",
    "xvmaddwl.h_b",
    "xvmaddwl.w_h",
    "xvmaddwl.d_w",
    "xvmaddwl.q_d",
    "xvmaddwh.h_b",
    "xvmaddwh.w_h",
    "xvmaddwh.d_w",
    "xvmaddwh.q_d",
    "xvmaddwev.h_bu",
    "xvmaddwev.w_hu",
    "xvmaddwev.d_wu",
    "xvmaddwev.q_du",
    "xvmaddwod.h_bu",
    "xvmaddwod.w_hu",
    "xvmaddwod.d_wu",
    "xvmaddwod.q_du",
    "xvmaddwl.h_bu",
    "xvmaddwl.w_hu",
    "xvmaddwl.d_wu",
    "xvmaddwl.q_du",
    "xvmaddwh.h_bu",
    "xvmaddwh.w_hu",
    "xvmaddwh.d_wu",
    "xvmaddwh.q_du",
    "xvmaddwev.h_bu_b",
    "xvmaddwev.w_hu_h",
    "xvmaddwev.d_wu_w",
    "xvmaddwev.q_du_d",
    "xvmaddwod.h_bu_b",
    "xvmaddwod.w_hu_h",
    "xvmaddwod.d_wu_w",
    "xvmaddwod.q_du_d",
    "xvmaddwl.h_bu_b",
    "xvmaddwl.w_hu_h",
    "xvmaddwl.d_wu_w",
    "xvmaddwl.q_du_d",
    "xvmaddwh.h_bu_b",
    "xvmaddwh.w_hu_h",
    "xvmaddwh.d_wu_w",
    "xvmaddwh.q_du_d",
    "xvdp2.h_b",
    "xvdp2.w_h",
    "xvdp2.d_w",
    "xvdp2.q_d",
    "xvdp2.hu_bu",
    "xvdp2.wu_hu",
    "xvdp2.du_wu",
    "xvdp2.qu_du",
    "xvdp2.h_bu_b",
    "xvdp2.w_hu_h",
    "xvdp2.d_wu_w",
    "xvdp2.q_du_d",
    "xvdp2add.h_b",
    "xvdp2add.w_h",
    "xvdp2add.d_w",
    "xvdp2add.q_d",
    "xvdp2add.h_bu",
    "xvdp2add.w_hu",
    "xvdp2add.d_wu",
    "xvdp2add.q_du",
    "xvdp2add.h_bu_b",
    "xvdp2add.w_hu_h",
    "xvdp2add.d_wu_w",
    "xvdp2add.q_du_d",
    "xvdp2sub.h_b",
    "xvdp2sub.w_h",
    "xvdp2sub.d_w",
    "xvdp2sub.q_d",
    "xvdp2sub.h_bu",
    "xvdp2sub.w_hu",
    "xvdp2sub.d_wu",
    "xvdp2sub.q_du",
    "xvdp4.w_b",
    "xvdp4.d_h",
    "xvdp4.q_w",
    "xvdp4.w_bu",
    "xvdp4.d_hu",
    "xvdp4.q_wu",
    "xvdp4.w_bu_b",
    "xvdp4.d_hu_h",
    "xvdp4.q_wu_w",
    "xvdp4add.w_b",
    "xvdp4add.d_h",
    "xvdp4add.q_w",
    "xvdp4add.w_bu",
    "xvdp4add.d_hu",
    "xvdp4add.q_wu",
    "xvdp4add.w_bu_b",
    "xvdp4add.d_hu_h",
    "xvdp4add.q_wu_w",
    "xvdiv.b",
    "xvdiv.h",
    "xvdiv.w",
    "xvdiv.d",
    "xvmod.b",
    "xvmod.h",
    "xvmod.w",
    "xvmod.d",
    "xvdiv.bu",
    "xvdiv.hu",
    "xvdiv.wu",
    "xvdiv.du",
    "xvmod.bu",
    "xvmod.hu",
    "xvmod.wu",
    "xvmod.du",
    "xvsll.b",
    "xvsll.h",
    "xvsll.w",
    "xvsll.d",
    "xvsrl.b",
    "xvsrl.h",
    "xvsrl.w",
    "xvsrl.d",
    "xvsra.b",
    "xvsra.h",
    "xvsra.w",
    "xvsra.d",
    "xvrotr.b",
    "xvrotr.h",
    "xvrotr.w",
    "xvrotr.d",
    "xvsrlr.b",
    "xvsrlr.h",
    "xvsrlr.w",
    "xvsrlr.d",
    "xvsrar.b",
    "xvsrar.h",
    "xvsrar.w",
    "xvsrar.d",
    "xvsrln.b_h",
    "xvsrln.h_w",
    "xvsrln.w_d",
    "xvsran.b_h",
    "xvsran.h_w",
    "xvsran.w_d",
    "xvsrlrn.b_h",
    "xvsrlrn.h_w",
    "xvsrlrn.w_d",
    "xvsrarn.b_h",
    "xvsrarn.h_w",
    "xvsrarn.w_d",
    "xvssrln.b_h",
    "xvssrln.h_w",
    "xvssrln.w_d",
    "xvssran.b_h",
    "xvssran.h_w",
    "xvssran.w_d",
    "xvssrlrn.b_h",
    "xvssrlrn.h_w",
    "xvssrlrn.w_d",
    "xvssrarn.b_h",
    "xvssrarn.h_w",
    "xvssrarn.w_d",
    "xvssrln.bu_h",
    "xvssrln.hu_w",
    "xvssrln.wu_d",
    "xvssran.bu_h",
    "xvssran.hu_w",
    "xvssran.wu_d",
    "xvssrlrn.bu_h",
    "xvssrlrn.hu_w",
    "xvssrlrn.wu_d",
    "xvssrarn.bu_h",
    "xvssrarn.hu_w",
    "xvssrarn.wu_d",
    "xvbitclr.b",
    "xvbitclr.h",
    "xvbitclr.w",
    "xvbitclr.d",
    "xvbitset.b",
    "xvbitset.h",
    "xvbitset.w",
    "xvbitset.d",
    "xvbitrev.b",
    "xvbitrev.h",
    "xvbitrev.w",
    "xvbitrev.d",
    "xvbstrc12.b",
    "xvbstrc12.h",
    "xvbstrc12.w",
    "xvbstrc12.d",
    "xvbstrc21.b",
    "xvbstrc21.h",
    "xvbstrc21.w",
    "xvbstrc21.d",
    "xvpackev.b",
    "xvpackev.h",
    "xvpackev.w",
    "xvpackev.d",
    "xvpackod.b",
    "xvpackod.h",
    "xvpackod.w",
    "xvpackod.d",
    "xvilvl.b",
    "xvilvl.h",
    "xvilvl.w",
    "xvilvl.d",
    "xvilvh.b",
    "xvilvh.h",
    "xvilvh.w",
    "xvilvh.d",
    "xvpickev.b",
    "xvpickev.h",
    "xvpickev.w",
    "xvpickev.d",
    "xvpickod.b",
    "xvpickod.h",
    "xvpickod.w",
    "xvpickod.d",
    "xvreplve.b",
    "xvreplve.h",
    "xvreplve.w",
    "xvreplve.d",
    "xvextrcol.b",
    "xvextrcol.h",
    "xvextrcol.w",
    "xvextrcol.d",
    "xvand.v",
    "xvor.v",
    "xvxor.v",
    "xvnor.v",
    "xvandn.v",
    "xvorn.v",
    "xvrandsign.b",
    "xvrandsign.h",
    "xvrorsign.b",
    "xvrorsign.h",
    "xvfrstp.b",
    "xvfrstp.h",
    "xvclrstrr.v",
    "xvclrstrv.v",
    "xvadd.q",
    "xvsub.q",
    "xvsigncov.b",
    "xvsigncov.h",
    "xvsigncov.w",
    "xvsigncov.d",
    "xvfadd.s",
    "xvfadd.d",
    "xvfsub.s",
    "xvfsub.d",
    "xvfaddsub.s",
    "xvfaddsub.d",
    "xvfsubadd.s",
    "xvfsubadd.d",
    "xvfmul.s",
    "xvfmul.d",
    "xvfdiv.s",
    "xvfdiv.d",
    "xvfmax.s",
    "xvfmax.d",
    "xvfmin.s",
    "xvfmin.d",
    "xvfmaxa.s",
    "xvfmaxa.d",
    "xvfmina.s",
    "xvfmina.d",
    "xvfscaleb.s",
    "xvfscaleb.d",
    "xvfcvt.h_s",
    "xvfcvt.s_d",
    "xvffint.s_l",
    "xvftint.w_d",
    "xvftintrm.w_d",
    "xvftintrp.w_d",
    "xvftintrz.w_d",
    "xvftintrne.w_d",
    "xvhadd4.h_bu",
    "xvshuf4.w",
    "xvshuf2.d",
    "xvpmul.w",
    "xvpmul.d",
    "xvpmuh.w",
    "xvpmuh.d",
    "xvpmulacc.w",
    "xvpmulacc.d",
    "xvpmuhacc.w",
    "xvpmuhacc.d",
    "xvpmulwl.h_b",
    "xvpmulwl.w_h",
    "xvpmulwl.d_w",
    "xvpmulwl.q_d",
    "xvpmulwh.h_b",
    "xvpmulwh.w_h",
    "xvpmulwh.d_w",
    "xvpmulwh.q_d",
    "xvpmaddwl.h_b",
    "xvpmaddwl.w_h",
    "xvpmaddwl.d_w",
    "xvpmaddwl.q_d",
    "xvpmaddwh.h_b",
    "xvpmaddwh.w_h",
    "xvpmaddwh.d_w",
    "xvpmaddwh.q_d",
    "xvpdp2.q_d",
    "xvpdp2add.q_d",
    "xvcdp4.re_d_h",
    "xvcdp4.im_d_h",
    "xvcdp4add.re_d_h",
    "xvcdp4add.im_d_h",
    "xvcdp2.re_q_w",
    "xvcdp2.im_q_w",
    "xvcdp2add.re_q_w",
    "xvcdp2add.im_q_w",
    "xvsignsel.w",
    "xvsignsel.d",
    "xvshuf.h",
    "xvshuf.w",
    "xvshuf.d",
    "xvperm.w",
    "xvseqi.b",
    "xvseqi.h",
    "xvseqi.w",
    "xvseqi.d",
    "xvslei.b",
    "xvslei.h",
    "xvslei.w",
    "xvslei.d",
    "xvslei.bu",
    "xvslei.hu",
    "xvslei.wu",
    "xvslei.du",
    "xvslti.b",
    "xvslti.h",
    "xvslti.w",
    "xvslti.d",
    "xvslti.bu",
    "xvslti.hu",
    "xvslti.wu",
    "xvslti.du",
    "xvaddi.bu",
    "xvaddi.hu",
    "xvaddi.wu",
    "xvaddi.du",
    "xvsubi.bu",
    "xvsubi.hu",
    "xvsubi.wu",
    "xvsubi.du",
    "xvbsll.v",
    "xvbsrl.v",
    "xvmaxi.b",
    "xvmaxi.h",
    "xvmaxi.w",
    "xvmaxi.d",
    "xvmini.b",
    "xvmini.h",
    "xvmini.w",
    "xvmini.d",
    "xvmaxi.bu",
    "xvmaxi.hu",
    "xvmaxi.wu",
    "xvmaxi.du",
    "xvmini.bu",
    "xvmini.hu",
    "xvmini.wu",
    "xvmini.du",
    "xvrandsigni.b",
    "xvrandsigni.h",
    "xvrorsigni.b",
    "xvrorsigni.h",
    "xvfrstpi.b",
    "xvfrstpi.h",
    "xvclrstri.v",
    "xvmepatmsk.v",
    "xvclo.b",
    "xvclo.h",
    "xvclo.w",
    "xvclo.d",
    "xvclz.b",
    "xvclz.h",
    "xvclz.w",
    "xvclz.d",
    "xvpcnt.b",
    "xvpcnt.h",
    "xvpcnt.w",
    "xvpcnt.d",
    "xvneg.b",
    "xvneg.h",
    "xvneg.w",
    "xvneg.d",
    "xvmskltz.b",
    "xvmskltz.h",
    "xvmskltz.w",
    "xvmskltz.d",
    "xvmskgez.b",
    "xvmsknz.b",
    "xvmskcopy.b",
    "xvmskfill.b",
    "xvfrstm.b",
    "xvfrstm.h",
    "xvseteqz.v",
    "xvsetnez.v",
    "xvsetanyeqz.b",
    "xvsetanyeqz.h",
    "xvsetanyeqz.w",
    "xvsetanyeqz.d",
    "xvsetallnez.b",
    "xvsetallnez.h",
    "xvsetallnez.w",
    "xvsetallnez.d",
    "xvflogb.s",
    "xvflogb.d",
    "xvfclass.s",
    "xvfclass.d",
    "xvfsqrt.s",
    "xvfsqrt.d",
    "xvfrecip.s",
    "xvfrecip.d",
    "xvfrsqrt.s",
    "xvfrsqrt.d",
    "xvfrint.s",
    "xvfrint.d",
    "xvfrintrm.s",
    "xvfrintrm.d",
    "xvfrintrp.s",
    "xvfrintrp.d",
    "xvfrintrz.s",
    "xvfrintrz.d",
    "xvfrintrne.s",
    "xvfrintrne.d",
    "xvextl.w_b",
    "xvextl.d_b",
    "xvextl.d_h",
    "xvextl.w_bu",
    "xvextl.d_bu",
    "xvextl.d_hu",
    "xvhadd8.d_bu",
    "xvhminpos.w_hu",
    "xvhminpos.d_hu",
    "xvhminpos.q_hu",
    "xvclrtail.b",
    "xvclrtail.h",
    "xvfcvtl.s_h",
    "xvfcvth.s_h",
    "xvfcvtl.d_s",
    "xvfcvth.d_s",
    "xvffint.s_w",
    "xvffint.s_wu",
    "xvffint.d_l",
    "xvffint.d_lu",
    "xvffintl.d_w",
    "xvffinth.d_w",
    "xvftint.w_s",
    "xvftint.l_d",
    "xvftintrm.w_s",
    "xvftintrm.l_d",
    "xvftintrp.w_s",
    "xvftintrp.l_d",
    "xvftintrz.w_s",
    "xvftintrz.l_d",
    "xvftintrne.w_s",
    "xvftintrne.l_d",
    "xvftint.wu_s",
    "xvftint.lu_d",
    "xvftintrz.wu_s",
    "xvftintrz.lu_d",
    "xvftintl.l_s",
    "xvftinth.l_s",
    "xvftintrml.l_s",
    "xvftintrmh.l_s",
    "xvftintrpl.l_s",
    "xvftintrph.l_s",
    "xvftintrzl.l_s",
    "xvftintrzh.l_s",
    "xvftintrnel.l_s",
    "xvftintrneh.l_s",
    "xvexth.h_b",
    "xvexth.w_h",
    "xvexth.d_w",
    "xvexth.q_d",
    "xvexth.hu_bu",
    "xvexth.wu_hu",
    "xvexth.du_wu",
    "xvexth.qu_du",
    "xvreplgr2vr.b",
    "xvreplgr2vr.h",
    "xvreplgr2vr.w",
    "xvreplgr2vr.d",
    "vext2xv.h_b",
    "vext2xv.w_b",
    "vext2xv.d_b",
    "vext2xv.w_h",
    "vext2xv.d_h",
    "vext2xv.d_w",
    "vext2xv.hu_bu",
    "vext2xv.wu_bu",
    "vext2xv.du_bu",
    "vext2xv.wu_hu",
    "vext2xv.du_hu",
    "vext2xv.du_wu",
    "xvhseli.d",
    "xvrotri.b",
    "xvrotri.h",
    "xvrotri.w",
    "xvrotri.d",
    "xvsrlri.b",
    "xvsrlri.h",
    "xvsrlri.w",
    "xvsrlri.d",
    "xvsrari.b",
    "xvsrari.h",
    "xvsrari.w",
    "xvsrari.d",
    "xvinsgr2vr.w",
    "xvinsgr2vr.d",
    "xvpickve2gr.w",
    "xvpickve2gr.d",
    "xvpickve2gr.wu",
    "xvpickve2gr.du",
    "xvrepl128vei.b",
    "xvrepl128vei.h",
    "xvrepl128vei.w",
    "xvrepl128vei.d",
    "xvextrcoli.b",
    "xvextrcoli.h",
    "xvextrcoli.w",
    "xvextrcoli.d",
    "xvinsve0.w",
    "xvinsve0.d",
    "xvpickve.w",
    "xvpickve.d",
    "xvreplve0.b",
    "xvreplve0.h",
    "xvreplve0.w",
    "xvreplve0.d",
    "xvreplve0.q",
    "xvsllwil.h_b",
    "xvsllwil.w_h",
    "xvsllwil.d_w",
    "xvextl.q_d",
    "xvsllwil.hu_bu",
    "xvsllwil.wu_hu",
    "xvsllwil.du_wu",
    "xvextl.qu_du",
    "xvbitclri.b",
    "xvbitclri.h",
    "xvbitclri.w",
    "xvbitclri.d",
    "xvbitseti.b",
    "xvbitseti.h",
    "xvbitseti.w",
    "xvbitseti.d",
    "xvbitrevi.b",
    "xvbitrevi.h",
    "xvbitrevi.w",
    "xvbitrevi.d",
    "xvbstrc12i.b",
    "xvbstrc12i.h",
    "xvbstrc12i.w",
    "xvbstrc12i.d",
    "xvbstrc21i.b",
    "xvbstrc21i.h",
    "xvbstrc21i.w",
    "xvbstrc21i.d",
    "xvsat.b",
    "xvsat.h",
    "xvsat.w",
    "xvsat.d",
    "xvsat.bu",
    "xvsat.hu",
    "xvsat.wu",
    "xvsat.du",
    "xvslli.b",
    "xvslli.h",
    "xvslli.w",
    "xvslli.d",
    "xvsrli.b",
    "xvsrli.h",
    "xvsrli.w",
    "xvsrli.d",
    "xvsrai.b",
    "xvsrai.h",
    "xvsrai.w",
    "xvsrai.d",
    "xvsrlrneni.b_h",
    "xvsrlrneni.h_w",
    "xvsrlrneni.w_d",
    "xvsrlrneni.d_q",
    "xvsrarneni.b_h",
    "xvsrarneni.h_w",
    "xvsrarneni.w_d",
    "xvsrarneni.d_q",
    "xvsrlni.b_h",
    "xvsrlni.h_w",
    "xvsrlni.w_d",
    "xvsrlni.d_q",
    "xvsrlrni.b_h",
    "xvsrlrni.h_w",
    "xvsrlrni.w_d",
    "xvsrlrni.d_q",
    "xvssrlni.b_h",
    "xvssrlni.h_w",
    "xvssrlni.w_d",
    "xvssrlni.d_q",
    "xvssrlni.bu_h",
    "xvssrlni.hu_w",
    "xvssrlni.wu_d",
    "xvssrlni.du_q",
    "xvssrlrni.b_h",
    "xvssrlrni.h_w",
    "xvssrlrni.w_d",
    "xvssrlrni.d_q",
    "xvssrlrni.bu_h",
    "xvssrlrni.hu_w",
    "xvssrlrni.wu_d",
    "xvssrlrni.du_q",
    "xvsrani.b_h",
    "xvsrani.h_w",
    "xvsrani.w_d",
    "xvsrani.d_q",
    "xvsrarni.b_h",
    "xvsrarni.h_w",
    "xvsrarni.w_d",
    "xvsrarni.d_q",
    "xvssrani.b_h",
    "xvssrani.h_w",
    "xvssrani.w_d",
    "xvssrani.d_q",
    "xvssrani.bu_h",
    "xvssrani.hu_w",
    "xvssrani.wu_d",
    "xvssrani.du_q",
    "xvssrarni.b_h",
    "xvssrarni.h_w",
    "xvssrarni.w_d",
    "xvssrarni.d_q",
    "xvssrarni.bu_h",
    "xvssrarni.hu_w",
    "xvssrarni.wu_d",
    "xvssrarni.du_q",
    "xvssrlrneni.b_h",
    "xvssrlrneni.h_w",
    "xvssrlrneni.w_d",
    "xvssrlrneni.d_q",
    "xvssrlrneni.bu_h",
    "xvssrlrneni.hu_w",
    "xvssrlrneni.wu_d",
    "xvssrlrneni.du_q",
    "xvssrarneni.b_h",
    "xvssrarneni.h_w",
    "xvssrarneni.w_d",
    "xvssrarneni.d_q",
    "xvssrarneni.bu_h",
    "xvssrarneni.hu_w",
    "xvssrarneni.wu_d",
    "xvssrarneni.du_q",
    "xvextrins.d",
    "xvextrins.w",
    "xvextrins.h",
    "xvextrins.b",
    "xvshuf4i.b",
    "xvshuf4i.h",
    "xvshuf4i.w",
    "xvshuf4i.d",
    "xvshufi1.b",
    "xvshufi2.b",
    "xvshufi3.b",
    "xvshufi4.b",
    "xvshufi1.h",
    "xvshufi2.h",
    "xvseli.h",
    "xvseli.w",
    "xvseli.d",
    "xvbitseli.b",
    "xvbitmvzi.b",
    "xvbitmvnzi.b",
    "xvandi.b",
    "xvori.b",
    "xvxori.b",
    "xvnori.b",
    "xvldi",
    "xvpermi.w",
    "xvpermi.d",
    "xvpermi.q",
    "ENDING",
};

static const char *ir2_gpr_name[] = {
    "$zero" , "$ra" , "$tp" , "$sp" , "$a0" , "$a1" , "$a2" , "$a3" ,
    "$a4"   , "$a5" , "$a6" , "$a7" , "$t0" , "$t1" , "$t2" , "$t3" ,
    "$t4"   , "$t5" , "$t6" , "$t7" , "$t8" , "$x"  , "$fp" , "$s0" ,
    "$s1"   , "$s2" , "$s3" , "$s4" , "$s5" , "$s6" , "$s7" , "$s8" ,
};

static const char *ir2_fpr_name[] = {
    "$fa0"  , "$fa1"  , "$fa2"  , "$fa3"  ,
    "$fa4"  , "$fa5"  , "$fa6"  , "$fa7"  ,
    "$ft0"  , "$ft1"  , "$ft2"  , "$ft3"  ,
    "$ft4"  , "$ft5"  , "$ft6"  , "$ft7"  ,
    "$ft8"  , "$ft9"  , "$ft10" , "$ft11" ,
    "$ft12" , "$ft13" , "$ft14" , "$ft15" ,
    "$fs0"  , "$fs1"  , "$fs2"  , "$fs3"  ,
    "$fs4"  , "$fs5"  , "$fs6"  , "$s7"   ,
};

static const char *ir2_scr_name[] = {
    "$scr0" , "$scr1" , "$scr2" , "$scr3",
};

static const char *ir2_cc_name[] = {
    "$cc0" , "$cc1" , "$cc2" , "$cc3" , 
    "$cc4" , "$cc5" , "$cc6" , "$cc7" ,
};


const char *ins_name(Ins *ins)
{
    LA_OPCODE op = ins->op;
    if (op == LISA_INVALID || op >= LISA_ENDING) {
        return "invalid ins";
    }
    return ir2_ins_name[op];
}

const char *gpr_name(uint32_t gpr)
{
    if (gpr >= 32)
        return "invalid gpr";
    return ir2_gpr_name[gpr];
}

void sprint_op_champsim(uint16_t op, char *msg) {
    sprintf(msg, "%-10s", ir2_ins_name[op]);
}

void sprint_op(LA_OPCODE op, char *msg) {
    sprintf(msg, "%-15s", ir2_ins_name[op]);
}

void sprint_ins(Ins *ins, char * msg) {
    assert(ins->op >= LISA_INVALID && ins->op <= LISA_ENDING);
    sprintf(msg, "%-15s\t", ir2_ins_name[ins->op]);
    for (int i = 0; i < ins->opnd_count; i++) {
        if (i != 0)
            sprintf(msg + strlen(msg),", ");

        IR2_OPND_TYPE type = get_opnd_type(ins, i);
        switch (type) {
            case IR2_OPND_GPR:
                sprintf(msg + strlen(msg),"%s", ir2_gpr_name[ins->opnd[i].val]);
                break;
            case IR2_OPND_FPR:
                sprintf(msg + strlen(msg),"%s", ir2_fpr_name[ins->opnd[i].val]);
                break;
            case IR2_OPND_FCSR:
                sprintf(msg + strlen(msg),"%d", ins->opnd[i].val); 
                break;
            case IR2_OPND_SCR:
                sprintf(msg + strlen(msg),"%s", ir2_scr_name[ins->opnd[i].val]);
                break;
            case IR2_OPND_CC:
                sprintf(msg + strlen(msg),"%s", ir2_cc_name[ins->opnd[i].val]);
                break;
            case IR2_OPND_LABEL:
                break;
            case IR2_OPND_IMM:
                sprintf(msg + strlen(msg),"0x%x", ins->opnd[i].val);
                break;
            case IR2_OPND_NONE:
                break;
            default:
                fprintf(stderr, "Error in sprint_ins, unknown opnd\n");
                assert(0);
                exit(EXIT_FAILURE);
        }
    }

    //putchar('\n');
}

void sprint_disasm(uint32_t opcode, char *msg) 
{
    Ins ins;
    la_disasm(opcode, &ins);
    sprint_ins(&ins, msg);
}


void print_op(LA_OPCODE op)
{
    char msg[32];
    sprint_op(op, msg);
    puts(msg);
}

void print_ins(Ins *ins)
{
    char msg[64];
    sprint_ins(ins, msg);
    puts(msg);
}

void print_disasm(uint32_t opcode)
{
    char msg[64];
    sprint_disasm(opcode, msg);
    puts(msg);
}
